// 53. 最大子数组和
// 给你一个整数数组 nums ，请你找出一个具有最大和的连续子数组（子数组最少包含一个元素），
// 返回其最大和。

// 子数组 是数组中的一个连续部分。

// 示例 1：

// 输入：nums = [-2,1,-3,4,-1,2,1,-5,4]
// 输出：6
// 解释：连续子数组 [4,-1,2,1] 的和最大，为 6 。
// 思路：局部最优：当前“连续和”为负数的时候立刻放弃，从下一个元素重新计算“连续和”，
// 因为负数加上下一个元素 “连续和”只会越来越小。 全局最优：选取最大“连续和”
// 遍历nums，从头开始用count累积，如果count一旦加上nums[i]变为负数，
// 那么就应该从nums[i+1]开始从0累积count了，因为已经变为负数的count，只会拖累总和。
/**
 * @param {number[]} nums
 * @return {number}
 */
 var maxSubArray = function(nums) {
    let count=0,result=nums[0];
    for(let i=0;i<nums.length;i++){
        count+=nums[i];
        if(count>result) result=count;
        if(count<0) count=0;
        
    }
    return result;
};